Feature selection strategies
Genes with high dispersion
cds_high_disp <- readRDS('output/monocle/180831/monocle_high_dispersion/10x-180831-monocle')
plot_cell_trajectory(cds_high_disp, color_by = 'timepoint')
DE genes between T1T2T3 and T4T5
cds_timecombined <- readRDS('output/monocle/180831/monocle_time-combined/10x-180831-monocle')
plot_cell_trajectory(cds_timecombined, color_by='timepoint')
DE genes from cluster resolution 1.5
cds_res1.5 <- readRDS('output/monocle/180831/monocle_res1.5/10x-180831-monocle')
plot_cell_trajectory(cds_res1.5, color_by='timepoint')
Dataset split into T1+T2+T3 and T4+T5, DE genes from clusters res0.5.
cds_split_res0.5 <- readRDS('output/monocle/180831/monocle_T1T2T3_T4T5_res0.5/10x-180831-noreg-monocle')
plot_cell_trajectory(cds_split_res0.5, color_by='timepoint')
Dataset split into T1+T2+T3 and T4+T5, DE genes from clusters res1.5 are used here. This trajectory was used for further analyses.
cds <- readRDS('output/monocle/180831/monocle_T1T2T3_T4T5_res1.5/10x-180831-monocle')
plot_cell_trajectory(cds, color_by='timepoint')
pdata <- pData(cds)
DE genes between brown and white.
cds_type <- readRDS('output/monocle/180831/monocle_type/10x-180831-monocle')
plot_cell_trajectory(cds_type, color_by='timepoint')
DE genes between top10% lowest PC2 score and top10% highest PC2 score.
cds_pc2 <- readRDS('output/monocle/180831/monocle_PC2/10x-180831-monocle')
plot_grid(
plot_cell_trajectory(cds_pc2, color_by='timepoint'),
plot_cell_trajectory(cds_pc2, color_by='State.old') + scale_color_manual(values=c("#f67770", "#964B00", "orange"), name = "State"),
plot_cell_trajectory(cds_pc2, color_by='Pseudotime'),
plot_cell_trajectory(cds_pc2, color_by='State'),
ncol=2
)
plot_cell_trajectory(cds_pc2, color_by='timepoint') + geom_point(color='white', size=5) + geom_point(aes(colour=timepoint), alpha=0.01)
plot_grid(
plot_cell_trajectory(cds_pc2, color_by='State.old') + scale_color_manual(values=c("#f67770", "#964B00", "orange"), name = "State"),
plot_cell_trajectory(cds_pc2, color_by='depot') + scale_color_manual(values=c("#845d1e", "#edd2a8", "#472809", 'orange'), name = "Depot"),
ncol=2
)
Ratioโs white/brown and depots per branch.
#TODO rewrite so it outputs a table
get_ratios <- function(col1, col2){
states <- unique(seurobj@meta.data[,col1])
values <- unique(seurobj@meta.data[,col2])
for (state in states){
n_state = length(which(seurobj@meta.data[col1] == state))
print(paste('N cells', col1, state, ':', n_state))
for (value in values){
n_state_value <- length(which(seurobj@meta.data[col1] == state & seurobj@meta.data[col2] == value))
perc_state_value <- n_state_value / n_state
print(paste('Ratio', value, 'in state', state, ': ', round(perc_state_value, 2)))
}
}
}
states_pc2 <- pData(cds_pc2)['State']
names(states_pc2) <- 'State.PC2'
seurobj <- AddMetaData(seurobj, states_pc2)
get_ratios('State.PC2', 'depot')
get_ratios('State.PC2', 'State.old.labels')
get_ratios('State.old.labels', 'depot')
get_ratios('depot', 'State.old.labels')
plot_grid(
TSNEPlot(seurobj, group.by='State.PC2', pt.size=0.1, colors.use = c('#1bb840', '#649efc', '#f67770')),
TSNEPlot(seurobj, group.by='State.old.labels', pt.size=0.1, colors.use = c('#649efc', '#1bb840', '#f67770')),
ncol=2
)
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQojRmVhdHVyZSBzZWxlY3Rpb24gc3RyYXRlZ2llcwoKR2VuZXMgd2l0aCBoaWdoIGRpc3BlcnNpb24KCmBgYHtyfQpjZHNfaGlnaF9kaXNwIDwtIHJlYWRSRFMoJ291dHB1dC9tb25vY2xlLzE4MDgzMS9tb25vY2xlX2hpZ2hfZGlzcGVyc2lvbi8xMHgtMTgwODMxLW1vbm9jbGUnKQpwbG90X2NlbGxfdHJhamVjdG9yeShjZHNfaGlnaF9kaXNwLCBjb2xvcl9ieSA9ICd0aW1lcG9pbnQnKQpgYGAKCkRFIGdlbmVzIGJldHdlZW4gVDFUMlQzIGFuZCBUNFQ1CgpgYGB7cn0KY2RzX3RpbWVjb21iaW5lZCA8LSByZWFkUkRTKCdvdXRwdXQvbW9ub2NsZS8xODA4MzEvbW9ub2NsZV90aW1lLWNvbWJpbmVkLzEweC0xODA4MzEtbW9ub2NsZScpCnBsb3RfY2VsbF90cmFqZWN0b3J5KGNkc190aW1lY29tYmluZWQsIGNvbG9yX2J5PSd0aW1lcG9pbnQnKQpgYGAKCkRFIGdlbmVzIGZyb20gY2x1c3RlciByZXNvbHV0aW9uIDEuNQoKYGBge3J9CmNkc19yZXMxLjUgPC0gcmVhZFJEUygnb3V0cHV0L21vbm9jbGUvMTgwODMxL21vbm9jbGVfcmVzMS41LzEweC0xODA4MzEtbW9ub2NsZScpCnBsb3RfY2VsbF90cmFqZWN0b3J5KGNkc19yZXMxLjUsIGNvbG9yX2J5PSd0aW1lcG9pbnQnKQpgYGAKCkRhdGFzZXQgc3BsaXQgaW50byBUMStUMitUMyBhbmQgVDQrVDUsIERFIGdlbmVzIGZyb20gY2x1c3RlcnMgcmVzMC41LgoKYGBge3J9CmNkc19zcGxpdF9yZXMwLjUgPC0gcmVhZFJEUygnb3V0cHV0L21vbm9jbGUvMTgwODMxL21vbm9jbGVfVDFUMlQzX1Q0VDVfcmVzMC41LzEweC0xODA4MzEtbm9yZWctbW9ub2NsZScpCnBsb3RfY2VsbF90cmFqZWN0b3J5KGNkc19zcGxpdF9yZXMwLjUsIGNvbG9yX2J5PSd0aW1lcG9pbnQnKQpgYGAKCkRhdGFzZXQgc3BsaXQgaW50byBUMStUMitUMyBhbmQgVDQrVDUsIERFIGdlbmVzIGZyb20gY2x1c3RlcnMgcmVzMS41IGFyZSB1c2VkIGhlcmUuIFRoaXMgdHJhamVjdG9yeSB3YXMgdXNlZCBmb3IgZnVydGhlciBhbmFseXNlcy4KCmBgYHtyfQpjZHMgPC0gcmVhZFJEUygnb3V0cHV0L21vbm9jbGUvMTgwODMxL21vbm9jbGVfVDFUMlQzX1Q0VDVfcmVzMS41LzEweC0xODA4MzEtbW9ub2NsZScpCnBsb3RfY2VsbF90cmFqZWN0b3J5KGNkcywgY29sb3JfYnk9J3RpbWVwb2ludCcpCmBgYAoKYGBge3J9CnBkYXRhIDwtIHBEYXRhKGNkcykKYGBgCgoKREUgZ2VuZXMgYmV0d2VlbiBicm93biBhbmQgd2hpdGUuCgpgYGB7cn0KY2RzX3R5cGUgPC0gcmVhZFJEUygnb3V0cHV0L21vbm9jbGUvMTgwODMxL21vbm9jbGVfdHlwZS8xMHgtMTgwODMxLW1vbm9jbGUnKQpwbG90X2NlbGxfdHJhamVjdG9yeShjZHNfdHlwZSwgY29sb3JfYnk9J3RpbWVwb2ludCcpCmBgYAoKREUgZ2VuZXMgYmV0d2VlbiB0b3AxMCUgbG93ZXN0IFBDMiBzY29yZSBhbmQgdG9wMTAlIGhpZ2hlc3QgUEMyIHNjb3JlLgoKYGBge3IgZmlnMTcsIGZpZy5oZWlnaHQgPSAxMCwgZmlnLndpZHRoID0gMTIsIGZpZy5hbGlnbiA9ICJjZW50ZXIifQpjZHNfcGMyIDwtIHJlYWRSRFMoJ291dHB1dC9tb25vY2xlLzE4MDgzMS9tb25vY2xlX1BDMi8xMHgtMTgwODMxLW1vbm9jbGUnKQpwbG90X2dyaWQoCiAgcGxvdF9jZWxsX3RyYWplY3RvcnkoY2RzX3BjMiwgY29sb3JfYnk9J3RpbWVwb2ludCcpLAogIHBsb3RfY2VsbF90cmFqZWN0b3J5KGNkc19wYzIsIGNvbG9yX2J5PSdTdGF0ZS5vbGQnKSArIHNjYWxlX2NvbG9yX21hbnVhbCh2YWx1ZXM9YygiI2Y2Nzc3MCIsICIjOTY0QjAwIiwgIm9yYW5nZSIpLCBuYW1lID0gIlN0YXRlIiksCiAgcGxvdF9jZWxsX3RyYWplY3RvcnkoY2RzX3BjMiwgY29sb3JfYnk9J1BzZXVkb3RpbWUnKSwKICBwbG90X2NlbGxfdHJhamVjdG9yeShjZHNfcGMyLCBjb2xvcl9ieT0nU3RhdGUnKSwKICBuY29sPTIKKQpgYGAKCgpgYGB7ciBmaWcyMSwgZmlnLmhlaWdodCA9IDUsIGZpZy53aWR0aCA9IDYsIGZpZy5hbGlnbiA9ICJjZW50ZXIifQpwbG90X2NlbGxfdHJhamVjdG9yeShjZHNfcGMyLCBjb2xvcl9ieT0ndGltZXBvaW50JykgKyBnZW9tX3BvaW50KGNvbG9yPSd3aGl0ZScsIHNpemU9NSkgKyBnZW9tX3BvaW50KGFlcyhjb2xvdXI9dGltZXBvaW50KSwgYWxwaGE9MC4wMSkgCmBgYAoKCmBgYHtyIGZpZzIyLCBmaWcuaGVpZ2h0ID0gNSwgZmlnLndpZHRoID0gMTIsIGZpZy5hbGlnbiA9ICJjZW50ZXIifQpwbG90X2dyaWQoCiAgcGxvdF9jZWxsX3RyYWplY3RvcnkoY2RzX3BjMiwgY29sb3JfYnk9J1N0YXRlLm9sZCcpICsgc2NhbGVfY29sb3JfbWFudWFsKHZhbHVlcz1jKCIjZjY3NzcwIiwgIiM5NjRCMDAiLCAib3JhbmdlIiksIG5hbWUgPSAiU3RhdGUiKSwKICBwbG90X2NlbGxfdHJhamVjdG9yeShjZHNfcGMyLCBjb2xvcl9ieT0nZGVwb3QnKSArIHNjYWxlX2NvbG9yX21hbnVhbCh2YWx1ZXM9YygiIzg0NWQxZSIsICIjZWRkMmE4IiwgIiM0NzI4MDkiLCAnb3JhbmdlJyksIG5hbWUgPSAiRGVwb3QiKSwKICBuY29sPTIKKQpgYGAKClJhdGlvJ3Mgd2hpdGUvYnJvd24gYW5kIGRlcG90cyBwZXIgYnJhbmNoLgoKYGBge3J9CiNUT0RPIHJld3JpdGUgc28gaXQgb3V0cHV0cyBhIHRhYmxlIApnZXRfcmF0aW9zIDwtIGZ1bmN0aW9uKGNvbDEsIGNvbDIpewogIHN0YXRlcyA8LSB1bmlxdWUoc2V1cm9iakBtZXRhLmRhdGFbLGNvbDFdKQogIHZhbHVlcyA8LSB1bmlxdWUoc2V1cm9iakBtZXRhLmRhdGFbLGNvbDJdKQogIGZvciAoc3RhdGUgaW4gc3RhdGVzKXsKICAgIG5fc3RhdGUgPSBsZW5ndGgod2hpY2goc2V1cm9iakBtZXRhLmRhdGFbY29sMV0gPT0gc3RhdGUpKQogICAgcHJpbnQocGFzdGUoJ04gY2VsbHMnLCBjb2wxLCBzdGF0ZSwgJzonLCBuX3N0YXRlKSkKICAgIGZvciAodmFsdWUgaW4gdmFsdWVzKXsKICAgIAluX3N0YXRlX3ZhbHVlIDwtIGxlbmd0aCh3aGljaChzZXVyb2JqQG1ldGEuZGF0YVtjb2wxXSA9PSBzdGF0ZSAmIHNldXJvYmpAbWV0YS5kYXRhW2NvbDJdID09IHZhbHVlKSkKCSAgICBwZXJjX3N0YXRlX3ZhbHVlIDwtIG5fc3RhdGVfdmFsdWUgLyBuX3N0YXRlCgkgICAgcHJpbnQocGFzdGUoJ1JhdGlvJywgdmFsdWUsICdpbiBzdGF0ZScsIHN0YXRlLCAnOiAnLCByb3VuZChwZXJjX3N0YXRlX3ZhbHVlLCAyKSkpCiAgICB9CiAgfQp9CmBgYAoKYGBge3J9CnN0YXRlc19wYzIgPC0gcERhdGEoY2RzX3BjMilbJ1N0YXRlJ10KbmFtZXMoc3RhdGVzX3BjMikgPC0gJ1N0YXRlLlBDMicKc2V1cm9iaiA8LSBBZGRNZXRhRGF0YShzZXVyb2JqLCBzdGF0ZXNfcGMyKQpnZXRfcmF0aW9zKCdTdGF0ZS5QQzInLCAnZGVwb3QnKQpgYGAKCmBgYHtyfQpnZXRfcmF0aW9zKCdTdGF0ZS5QQzInLCAnU3RhdGUub2xkLmxhYmVscycpCmBgYAoKYGBge3J9CmdldF9yYXRpb3MoJ1N0YXRlLm9sZC5sYWJlbHMnLCAnZGVwb3QnKQpgYGAKCmBgYHtyfQpnZXRfcmF0aW9zKCdkZXBvdCcsICdTdGF0ZS5vbGQubGFiZWxzJykKYGBgCgoKYGBge3IgZmlnMjMsIGZpZy5oZWlnaHQgPSA1LCBmaWcud2lkdGggPSAxMiwgZmlnLmFsaWduID0gImNlbnRlciJ9CnBsb3RfZ3JpZCgKICBUU05FUGxvdChzZXVyb2JqLCBncm91cC5ieT0nU3RhdGUuUEMyJywgcHQuc2l6ZT0wLjEsIGNvbG9ycy51c2UgPSBjKCcjMWJiODQwJywgJyM2NDllZmMnLCAnI2Y2Nzc3MCcpKSwKICBUU05FUGxvdChzZXVyb2JqLCBncm91cC5ieT0nU3RhdGUub2xkLmxhYmVscycsIHB0LnNpemU9MC4xLCBjb2xvcnMudXNlID0gYygnIzY0OWVmYycsICcjMWJiODQwJywgJyNmNjc3NzAnKSksCiAgbmNvbD0yCikKYGBgCg==